【Laravel Sail】バージョン指定でLaravelをインストールし、MySQL・phpMyAdminを簡単に使う方法
こんにちは、戸田です!
Laravel10を使うことがありインストールに迷ったのでブログ化します。
今回の環境
- WSL2 (Ubuntu)
- PHP v8.2
- Composer v2.7.x
- Laravel v10.x
- Laravel sail
前提
WSL2、PHP、Composer、Dockerがインストールされていること
手順
Laravel10をインストール
まずはComposerでLaravel10をインストールします。
この場合"10.*"
を任意のバージョンにすることもできます。
composer create-project laravel/laravel project-name --prefer-dist "10.*"
Laravel sailをインストール
cd project-name
php artisan sail:install
phpMyAdminの設定
Laravel sailをインストールした後に追加されたdocker-compose.yml
を編集します。
services:
Laravel.test: ~~~
mysql: ~~~
# ここから下を追加
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:mysql
ports:
- 8888:80
environment:
MYSQL_USERNAME: '${DB_USERNAME}'
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
PMA_HOST: mysql
networks:
- sail
起動してみる
./vendor/bin/sail up
以下のようにDockerが動いていれば起動成功です!
Docker Desktopの場合
コマンドでの確認の場合
docker ps
//出力
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
405566594e7e phpmyadmin/phpmyadmin "/docker-entrypoint.…" 45 hours ago Up 45 hours 0.0.0.0:8888->80/tcp project-name-phpmyadmin-1
61dbc56803d5 sail-8.3/app "start-container" 45 hours ago Up 45 hours 0.0.0.0:80->80/tcp, 0.0.0.0:5173->5173/tcp, 8000/tcp project-name-laravel.test-1
abd512c0f195 mysql/mysql-server:8.0 "/entrypoint.sh mysq…" 45 hours ago Up 45 hours (healthy) 0.0.0.0:3306->3306/tcp, 33060-33061/tcp project-name-mysql-1
ブラウザでlocalhostにアクセスするとLaravelのwelcomeページが表示されるはずです。
ちなみに自分はWSLにインストールしていたApacheと競合してうまく表示されなかったのでApacheを削除したことで解決しました。
MySQLをコマンドで操作する
自分はphpMyAdminをインストールする前にmysql
コマンドでデータベースを確認しようとして詰まりました。
原因は環境を作る前にWSLにMySQLをインストールしていたことです。そのためmysql
コマンドをターミナルから実行してもうまく動きませんでした。
対処方法として、Dockerコンテナ内でコマンドを実行する方法で解決しました。
以下のコマンドをWSL上のプロジェクトのディレクトリで実行します。
docker exec -it [プロジェクト名]-mysql-1 mysql -u [user名] -p
これでMySQLに接続できます!今回のブログではphpMyAdminをインストールしているのでそちらで動かすのが楽だとは思います。